// 使用 cn.apihz.cn 接口解析 IP，返回“城市”，若无城市则返回“国家”
// 注意：请替换为自己的 id 和 key，避免公共账号频次限制
export async function fetchIpLocation(ip) {
  try {
    // 空IP直接返回空
    if (!ip) return '';
    
    // 接口参数
    const publicId = '10009811';
    const publicKey = 'c41b67ad7aed5133f8f361828295783d';
    const baseUrl = 'https://cn.apihz.cn/api/ip/chaapi.php';
    
    // 构建请求URL（包含必要参数）
    const url = new URL(baseUrl);
    url.searchParams.append('id', publicId);
    url.searchParams.append('key', publicKey);
    url.searchParams.append('ip', ip);
    
    // 发送请求
    const res = await fetch(url.toString());
    if (!res.ok) return '';
    
    // 解析响应（该接口返回JSON格式）
    const data = await res.json();
    if(data.code !== 200) return '未知';

    const ok = (data && (data.error === 0 || data.code === 200 || data.status === 0 || data.success === true));
    const city = data?.shi || data?.sheng || data?.zhou || '';
    const country = data?.guo || '';
    const district = data?.qu || '';

    if (!ok && !city && !country) {
      const msg = String(data?.msg || '').trim();
      if (msg) {
        return msg;
      }
      return '';
    }

    const locMain = city ? (district ? `${city}-${district}` : city) : '';
    return locMain && country ? `${locMain}-${country}` : (locMain || country);
  } catch (error) {
    // 捕获任何异常（网络错误、解析错误等）
    console.error('IP解析失败:', error);
    return '';
  }
}
